<?php
class Rockitbos_Model_Acl extends Zend_Acl
{
    static function check()
    {
        try {
            $file = (string) APPLICATION_PATH . "/modules/configs/acl.ini";
  
            if(is_readable($file) === FALSE) {
                throw new Exception();
            }
            
            //Config einlesen und in ein Array packen
            $config = new Zend_config_Ini($file);
            $config = $config->toArray();

            
            die(print_r($config)); 
            foreach ($config as $res=>$value)
            {
                //Hinzufügen der verfügbaren Resourcen
                $this->addResource(new Zend_Acl_Resource($res));
                foreach ($value as $role=>$access)
                {
                    if(!$this->_getRoleRegistry()->has($role))
                    {
                        //Hinzufügen der verfügbaren Rollen
                        $this->addRole(new Zend_Acl_Role($role));
                    }
                    foreach ($access as $rules)
                    {
                        /* Setzen der Zugriffsrechte:
                           Falls access auf all gesetzt wird, erlaube alles für die Resource,
                           ansonsten definierte Rollen aus acl.ini */
                        if($rules == 'all')
                        {
                            $this->allow($role, $res, null);
                        }
                        else
                        {
                            $this->allow($role, $res, $rules);
                        }
                    }
                }
            }
            
            
            return $config;
        } catch (Exception $e) {
            return FALSE;
        }
    }
}